The following are limitations imposed by DAN:

1. The total number of characters in all strings (i.e. labeling and FILE
   names) must be less than 1024.  The maximum length for a single
   string is 80 characters.

2. The maximum number of symbols (i.e. variables, constants,
   and sequential function calls) is 100.

3. The maximum number of simultaneously open files (i.e. number of
   different variables referenced in a statement or group of
   statements) is the number specified by the FILES= statement in
   your CONFIG.SYS file.

4. The first 16 characters of a variable name must be unique, and variable
   names must conform to DOS file naming rules.  If the variable name
   matches the name of an existing file in the current directory, then the
   contents of that file will be replaced if the variable name appears
   on the left side of the equals sign in an assignment statement.
+
5. The maximum number of internal instructions (i.e. length of Pseudo
   Code table created during compilation phase) is 1024.  This
   corresponds to about 250 statements as the maximum length
   algorithm; but this of course depends on the complexity of the
   expressions in the algorithm.

6. ERASE, HARDCOPY, and PAUSE statements should not be grouped
   with any statement that contains a variable; otherwise the
   erase/hardcopy/pause will occur for each step time in the implicit
   loop.

7. Scaling and labeling information used for plots (YMIN, etc.) is taken
   from the values current at the time the first PLOT statement after an
   ERASE is executed.  Hence statements which set these values should not
   be grouped with the PLOT statement.

8. WRITE statements must not be grouped with other WRITE statements.
+
9. Only one ASCII data file can be processed with the READ function at a
   time.  Grouped READ function calls correspond to multiple data fields
   within the same record (there must be one READ for each data field).

10.The maximum number of traces on a plot that can be properly
   labeled is 25.

11.If the OPER variable is used in a statement, and, during execution, the
   operator terminates his input before all steps in the implicit loop
   have been executed (by entering a Control-Z), then the last value
   entered by the operator will be used for all subsequent references to
   OPER; including those in subsequent statements.  This is not true if
   the operator enters a value for each step time.  Thus, given a = OPER;
   b = OPER; 'b' will be filled with the last value entered for 'a' if the
   operator terminates 'a' input by entering a Control-Z.
+
12.DAN maintains the data for only the most recent FFT or inverse FFT.  Do
   not use the FFTRE, FFTIM, FFTMAG, or FFTPHS functions in expressions
   that are input to the FFT or IFT procedures.

13.SMOOTHing is only applied to Pre-existing or Temporary variables (i.e.
   non-ASCII data files).

14.3D plots must use solid line segments and be drawn from front to back
   (i.e. from smaller Z axis values to larger Z axis values).

15.DAN's text editor only handles files up to 30000 characters in length.
